package io;

import java.io.File;
import java.util.Scanner;

// 小程序练习  写一个小程序查询指定目录下的文件路径
public class Demo11 {
    public static void main(String[] args){
        // 1、输入必要信息
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要查询的目录：");
        String rootPath = scanner.next();
        System.out.println("请输入要查询的文件名：");
        String searchWord = scanner.next();

        // 2、构造 File对象，检查路径是否合法
        File f = new File(rootPath);
        if(!f.isDirectory()) {
            System.out.println("输入路径非法！不是目录！");
            return;
        }

        // 3、路径合法进行递归搜索  类似对 N叉树 搜索
        searchFile(f,searchWord);
    }

    private static void searchFile(File rootFile,String searchWord) {
        // 1、列出当前文件有哪些内容
        File[] files = rootFile.listFiles();
        if (files == null) {
            return;
        }

        // 2、不为空则遍历查找
        for (File f : files) {
            //System.out.println("当前找到："+f.getAbsolutePath());
            if (f.isFile()) {
                String name = f.getName();
                if(name.contains(searchWord)) {
                    System.out.println("找到文件路径为 -> "+f.getAbsolutePath());

                }
            } else if (f.isDirectory()) {
                searchFile(f,searchWord);
            }
        }
    }
}
